package com.easytoolsoft.easyreport.membership.service;

import java.util.List;
import java.util.Map;

import com.easytoolsoft.easyreport.membership.domain.Permission;
import com.easytoolsoft.easyreport.membership.domain.example.PermissionExample;
import com.easytoolsoft.easyreport.mybatis.pager.PageInfo;
import com.easytoolsoft.easyreport.mybatis.service.CrudService;

/**
 * 系统权限服务类
 *
 * @author Tom Deng
 * @date 2017-03-25
 */
public interface PermissionService extends CrudService<Permission, PermissionExample, Integer> {
	/**
	 * 加载缓存
	 */
	void reloadCache();

	/**
	 * 根据模块id获得权限分页
	 * 
	 * @param pageInfo
	 *            分页
	 * @param moduleId
	 *            模块id
	 * @return
	 */
	List<Permission> getByPage(PageInfo pageInfo, Integer moduleId);

	/**
	 * 根据模块id获得权限
	 * 
	 * @param moduleId
	 *            模块id
	 * @return
	 */
	List<Permission> getByModuleId(Integer moduleId);

	/**
	 * 
	 * @return
	 */
	Map<String, String> getIdCodeMap();

	/**
	 * 根据权限码获得权限id
	 * 
	 * @param codes
	 *            权限码
	 * @return
	 */
	String getPermissionIds(String[] codes);

	/**
	 * 根据权限id获得模块id
	 * 
	 * @param permissionIds
	 *            权限id
	 * @return
	 */
	String getModuleIds(String permissionIds);
}